package tasktracker.abstraction;

import org.slf4j.Logger;

public interface ITaskTrackerContext {

	/**
	 * 获得TaskTracker可用的数据存储空间。
	 * 
	 * @return 数据存储对象
	 */
	ITaskDataStore getTaskDataStore();

	/**
	 * 获取日志对象。
	 * 
	 * @return 日志对象
	 */
	Logger getLogger();

	/**
	 * 报告任务状态改变。
	 * 
	 * @param guid
	 *            任务唯一ID
	 * @param status
	 *            任务状态
	 * @param result
	 *            结果信息（如果不为null，则会进行持久化）
	 */
	void reportStatus(String guid, int status, TaskResultInfo result);

}
